Virtual machines (VMs) are software-based emulations of physical computers. Although virtual machines are software-based emulations, the emulations still utilize physical resources in physical machines referred to as host computers. The host computers can be divided into logical groups, referred to as host-groups, which can be used to implement certain constraints or preferences regarding the placement of VMs on the host computers. Additionally, since host computers can be connected by a network to form a cluster, host-groups can be used to divide a large cluster into more manageable pieces without having to create multiple clusters. Similarly, VMs can be divided into logical groups referred to as VM-groups, to further help implement certain constraints or preferences as well as to divide up large clusters.
Typically, a distributed resource scheduler (DRS) is employed to efficiently allocate host resources to VMs in a cluster. For example, a DRS can perform the initial placement of VMs and can dynamically migrate VMs among host-groups to balance the performance load and/or to enforce DRS requirements.
While VMs can be migrated from one host computer to another automatically by a DRS, host-groups are typically statically created and manually mapped by an administrator. The manual mapping relies heavily on the expertise of the administrator, thus making the manual mapping of host computers amongst host-groups a slow and inefficient process.